#ifndef __BASE_H_
#define __BASE_H_

#include <iostream>
class Base
{
    public:
        Base() = default;
        ~Base() = default;
        Base(const Base&) = default;
        Base& operator=(const Base&) = default;

    public:
        void Run()
        {
            step1();
            step2();
        }

    protected:
        virtual void step1()
        {
            std::cout << "base step1" << std::endl;
        }
        virtual void step2()
        {
            std::cout << "base step2" << std::endl;
        }
};


#endif
